package presentacion.operador;

import java.io.IOException;

import java.util.Date;

import javax.servlet.*;
import javax.servlet.http.*;

import persistencia.dao.GenericoDAO;
import persistencia.dao.PedidosDAO;

import persistencia.objetoNegocio.Pedido;

public class CambiarEstadoPedido extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
    
    private PedidosDAO pedidoDao;
    private GenericoDAO genericoDao;

    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        
        this.pedidoDao = new PedidosDAO();
        this.genericoDao = new GenericoDAO();
    }

    public void doPost(HttpServletRequest request, 
                       HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE);
    
        String[] parametros = request.getParameter("cambiarEstado").split("-");
        Long idPedido = Long.parseLong(parametros[0]);
        
        Pedido pedido = (Pedido)this.genericoDao.buscarPorId(Pedido.class, idPedido);
        
        try{
            this.pedidoDao.actualizarEstado(pedido, parametros[1], new Date());
            response.sendRedirect("operador.jsp?opcion=verPedidos");
        }
        catch(IllegalArgumentException e){
            
            String error = "No se ha podido cambiar el estado del pedido "+idPedido;
            String titulo = "ERROR";
            response.sendRedirect("mensaje.jsp?titulo="+titulo+"&mensajeError="+error);
        }
    }
}
